package com.jdzy.student.controller;

import com.jdzy.model.common.vos.Result;
import com.jdzy.model.student.dtos.*;
import com.jdzy.student.service.PatentService;
import io.swagger.annotations.Api;
import lombok.RequiredArgsConstructor;
import lombok.extern.slf4j.Slf4j;
import org.springframework.web.bind.annotation.*;

@RestController
@CrossOrigin
@Slf4j
@RequestMapping("api/patent")
@Api(value = "Patent的controller类")
@RequiredArgsConstructor
public class PatentController {
    private final PatentService patentService;
    /**
     * 获取学生专利信息
     * @param stuId
     * @param page
     * @param size
     * @param   patentRearchDto
     * @return
     */
    @PostMapping("/getPatentByStuId/{stuId}/{page}/{size}")
    public Result getPatentByStuId(@PathVariable String stuId, @PathVariable Integer page
            , @PathVariable Integer size, @RequestBody PatentRearchDto patentRearchDto){
        log.info("根据学号获取其专利,参数:{},{},{},{}",stuId,page,size,patentRearchDto);
        return patentService.getPatentByStuId(stuId,page,size,patentRearchDto);
    }



    /**
     * 删除专利信息
     * @param stuId
     * @param patentDeleteDto
     * @return
     */
    @DeleteMapping("deletePatent/{stuId}")
    public Result deletePatent(@PathVariable String stuId, @RequestBody PatentDeleteDto patentDeleteDto){
        log.info("删除专利信息,参数:{},{}",stuId,patentDeleteDto);
        return patentService.deletePatent(stuId,patentDeleteDto);
    }


    /**
     * 保存Patent信息
     * @param patentDto
     * @return
     */
    @PostMapping("savePatent")
    public Result savePatent(@RequestBody PatentDto patentDto){
        log.info("保存Patent信息,参数:{}",patentDto);
        return patentService.savePatent(patentDto);
    }


    /**
     * 修改Patent信息
     * @param patentDto
     * @return
     */
    @PostMapping("updatePatent")
    public Result updatePatent(@RequestBody PatentDto patentDto){
        log.info("修改Patent信息,参数:{}",patentDto);
        return patentService.updatePatent(patentDto);
    }
}
